import java.time.temporal.ChronoUnit;
import java.util.Arrays;
import java.util.Scanner;

/**
 * Created whit IntelliJ IDEA.
 * Description：
 * User：ZHONGCHEN
 * Date:2022-03-15
 * Time:10:27
 */
public class TestDemo {
    /**
     * 2044. 统计按位或能得到最大值的子集数目
     * 给你一个整数数组 nums ，请你找出 nums 子集 按位或 可能得到的 最大值 ，
     * 并返回按位或能得到最大值的 不同非空子集的数目 。
     * 如果数组 a 可以由数组 b 删除一些元素（或不删除）得到，则认为数组 a 是数组 b 的一个 子集 。
     * 如果选中的元素下标位置不一样，则认为两个子集 不同 。
     * 对数组 a 执行 按位或 ，结果等于 a[0] OR a[1] OR ... OR a[a.length - 1]（下标从 0 开始）。
     * <p>
     * 来源：力扣（LeetCode）
     * 链接：https://leetcode-cn.com/problems/count-number-of-maximum-bitwise-or-subsets
     * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
     */
    public static void main1(String[] args) {
        int[] nums = {2, 2, 2};
        System.out.println(countMaxOrSubsets(nums));
    }

    //二进制枚举
    public static int countMaxOrSubsets(int[] nums) {
        int length = nums.length;
        int count = 0;
        int max = Integer.MIN_VALUE;
        int status = 1 << length;
        for (int i = 0; i < status; i++) {
            //0按位或任何数 = 任何数
            int cur = 0;
            for (int j = 0; j < length; j++) {
                if (((i >> j) & 1) == 1) {
                    cur |= nums[j];
                }
            }
            if (cur > max) {
                max = cur;
                count = 1;
            } else if (cur == max) {
                count++;
            }
        }
        return count;
    }

    //牛客洗牌
    public static void main2(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //总共输入多少组数据
        int numOfGroups = scanner.nextInt();
        while (numOfGroups != 0) {
            //一组牌一共2*cards张
            int cards = scanner.nextInt();
            //一组牌一共洗k次
            int k = scanner.nextInt();
            int[] cardLeft = new int[cards];
            int[] cardRight = new int[cards];
            //左手的牌
            for (int i = 0; i < cards; i++) {
                cardLeft[i] = scanner.nextInt();
            }
            //右手的牌
            for (int i = 0; i < cards; i++) {
                cardRight[i] = scanner.nextInt();
            }
            //存储总共的牌
            int[] newCards = new int[2 * cards];
            while (k != 0) {
                //一次洗牌
                for (int i = 0; i < 2 * cards; i++) {
                    if (i % 2 == 0) {
                        newCards[i] = cardLeft[i / 2];
                    } else {
                        newCards[i] = cardRight[i / 2];
                    }
                }
                //洗牌过后,把总共的牌再分给左手和右手
                for (int i = 0; i < newCards.length; i++) {
                    if (i < newCards.length / 2) {
                        cardLeft[i] = newCards[i];
                    } else {
                        cardRight[i - cards] = newCards[i];
                    }
                }
                k--;
            }
            for (int i = 0; i < newCards.length; i++) {
                System.out.print(newCards[i] + " ");
            }
            numOfGroups--;
        }
    }

    //mp3的光标位置
    static int[] start = new int[4];

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int numOfSong = scanner.nextInt();
        String order = scanner.next();
        int times = order.length();
        for (int i = 0; i < Math.min(4, numOfSong); i++) {
            start[i] = i + 1;
        }
        int cur = 1;
        for (int i = 0; i < times; i++) {
            char c = order.charAt(i);
            if (c == 'U') {//升
                if (numOfSong <= 4) {//歌曲少于4首 无法翻页
                    if (cur == 1) {
                        cur = numOfSong;
                    } else {
                        cur = cur - 1;
                    }
                } else {//歌曲大于4首
                    //向上翻页至最后-特殊翻页
                    if (cur == 1) {
                        cur = numOfSong;
                        for (int j = 0; j < 4; j++) {
                            start[j] = numOfSong + j - 3;
                        }
                    } else if (cur == start[0]) { //一般翻页
                        cur -= 1;
                        for (int j = 0; j < 4; j++) {
                            start[j] -= 1;
                        }
                    } else {
                        //不用翻页
                        cur -= 1;
                    }
                }
            } else {//降
                if (numOfSong <= 4) {//歌曲少于4首 无法翻页
                    if (cur == numOfSong) {
                        cur = 1;
                    } else {
                        cur = cur + 1;
                    }
                } else {//歌曲大于4首
                    //向下翻页至最前-特殊翻页
                    if (cur == numOfSong) {
                        cur = 1;
                        for (int j = 0; j < 4; j++) {
                            start[j] = j + 1;
                        }
                    } else if (cur == start[3]) {//一般翻页
                        cur += 1;
                        for (int j = 0; j < 4; j++) {
                            start[j] += 1;
                        }
                    } else {
                        //不用翻页
                        cur += 1;
                    }
                }
            }
        }
        for (Integer num : start) {
            if (num != 0) {
                System.out.print(num + " ");
            }
        }
        System.out.println();
        System.out.println(cur);
    }
}
